package dominioEdificio;

import interfaces.Notificable;
import interfaces.Notificador;

public class SensorTemperatura implements Notificador{

	private Notificable observador;
	private boolean encendido;

	private int temperaturaMedida = 25;
	private int temperaturaAlarma = 28;
	
	public static String sensorTemperaturaEncendido = "Sensor de temperatura encendido";
	public static String sensorTemperaturaApagado = "Sensor de temperatura apagado";
	public static String tempAlarmaAlcanzada = "Se alcanzo la temperatura que activa la alarma";
	
	public SensorTemperatura(){
		this.encendido = false;
	}
	
	public void encender(){
		if (!this.encendido) {
			this.encendido = true;
			this.notificar(sensorTemperaturaEncendido);
		}
	}
	
	public void apagar(){
		if (this.encendido) {
			this.encendido = false;
			this.notificar(sensorTemperaturaApagado);
		}
	}
	
	public void aumentarTempAlarma(){
		if (this.encendido) {
			this.temperaturaAlarma++;
		}
	}
	
	public void disminuirTempAlarma(){
		if (this.encendido) {
			if (this.temperaturaAlarma > 0) this.temperaturaAlarma--;
		}
	}
	
	public void disminuirTempMedida(){
		if (this.encendido) {
			if (this.temperaturaMedida > 0) this.temperaturaMedida--;
		}
	}
	
	public void aumentarTempMedida(){
		if (this.encendido) {
			this.temperaturaMedida++;
			if (this.temperaturaMedida == this.temperaturaAlarma) {
				this.notificar(tempAlarmaAlcanzada);
			}
		}
	}
	
	public void registrarObservador(Notificable obs) {
		this.observador = obs;
	}

	public void notificar(String evento) {
		if (this.observador != null) this.observador.notificarMensaje(evento);
		
	}
	

}
